In modern computing systems, the memory management subsystem is one of the most important parts of the operating system (OS). Virtual memory is a technique implemented within the memory management subsystem to allow applications to access more memory than the physical memory that actually exists in a computing system. In order to accomplish this, the memory management subsystem provides a translation or address mapping mechanism to map the virtual address space into the physical address space.
A typical OS manages and controls a number of processes concurrently. Every process has its own virtual address space. These virtual address spaces are usually separate from each other to prevent overlapping program or data. The OS maintains a page table to store the mapping information for each process. When the memory usage increases due to multiple applications running concurrently, the overhead of managing virtual address mappings can become a significant performance limiter in large computer systems. It is therefore desirable to have improvements in memory optimization within a computing environment.